package cn.dglydrpy.study.j2ee.servlet.day07;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/*容器处理请求资源路径：
 *比如，在浏览器输入：http://ip:port/appname/abc.html
 *容器默认认为访问的是一个servlet，去查看web.xml找是否有匹配的servlet，有的话就执行该servlet的service()
 *若没有匹配的servlet，再去找对应位置的文件，若没找到则返回404
 * 
 * 本servlet配置文件中故意设置为abc.html  webapp里的abc.html无效，不会被执行。
 * 本servlet功能，给一定时间内每个访问的用户保存其访问总次数于session.
 */
public class SessionServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		HttpSession session  = request.getSession(true);
		System.out.println(session.getId());//浏览器保存cookie的生存时间到了之后自动删除cookie
		//然后如果再来向服务器发送请求，浏览器将得到新的sessionid
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		
		
		Integer count = (Integer)session.getAttribute("count"); //null如果用引用类型来强转,结果仍是null;null不能用基本类型强转
		if(count == null){
			count = 1;
		}else {
			count++;
		}
		session.setAttribute("count", count);
		
		out.println("您是第"+count+"次访问");//浏览器保存cookie的生存时间到了之后自动删除cookie
		//此时再来访问服务器，将得到新的sessionid,次数会从第一次开始
		
		//session.setMaxInactiveInterval(10);//间隔大于10s删除session,可以在设置属性之后设置,因为这个时间的记录在服务器上
		
		//session.invalidate();//删除session 永远是第一次访问，sessionid每次改变
		
		
	}
	
}
